El “Potenciar Trabajo” en datos. Miradas relacionales entre concepciones y números para comprender su constitución

Cynthia Ferrari Mango y Ariana Bardauil

2024-11-18

Resultados

Perfil de los y las titulares del programa

Género y sexo

Total pais

## [1] "61.17 %" "38.51 %" "0.18 %"  "0.07 %"  "0.05 %"  "0.03 %"  "100 %"
Tabla 2: Distribución del Género en Argentina
Datos de género y frecuencia
Género Cantidad Porcentaje
Mujer 970,555 61.17 %
Varón 611,010 38.51 %
Feminidad trans/travesti 2,867 0.18 %
Masculinidad trans 1,086 0.07 %
No Binarie 721 0.05 %
Otro 437 0.03 %
Total 1,586,676 100 %
## [1] "5111 corresponden a disidencias. Es decir, el 0.32 %"

Provincia de buenos aires

Distribución del género en PBA

## [1] "60.93 %" "38.86 %" "0.1 %"   "0.04 %"  "0.04 %"  "0.03 %"  "100 %"
Tabla 3: Distribución del Género en Buenos Aires
Datos de género y frecuencia
Género Cantidad Porcentaje
Mujer 488,894 60.93 %
Varón 311,834 38.86 %
Feminidad trans/travesti 835 0.1 %
Masculinidad trans 360 0.04 %
No Binarie 295 0.04 %
Otro 221 0.03 %
Total 802,439 100 %

Pirámide demográfica

Argentina

Provincia de buenos aires

Titulares por provincia

##  [1] "50.57 %" "5.05 %"  "4.55 %"  "3.8 %"   "3.75 %"  "3.71 %"  "3.66 %" 
##  [8] "3.51 %"  "3.46 %"  "2.55 %"  "2.06 %"  "1.99 %"  "1.97 %"  "1.53 %" 
## [15] "1.34 %"  "1.24 %"  "1.07 %"  "0.92 %"  "0.85 %"  "0.8 %"   "0.6 %"  
## [22] "0.55 %"  "0.29 %"  "0.19 %"  "100 %"
Distribución por Provincia
Cantidad y Porcentaje de titulares
Provincia Cantidad Porcentaje
Buenos Aires 802,380 50.57 %
Tucumán 80,126 5.05 %
Ciudad de Buenos Aires 72,152 4.55 %
Jujuy 60,231 3.8 %
Salta 59,494 3.75 %
Santa Fe 58,883 3.71 %
Chaco 58,009 3.66 %
Córdoba 55,716 3.51 %
Misiones 54,848 3.46 %
Santiago del Estero 40,398 2.55 %
Entre Ríos 32,752 2.06 %
Mendoza 31,513 1.99 %
Corrientes 31,307 1.97 %
San Juan 24,293 1.53 %
Formosa 21,210 1.34 %
Neuquén 19,610 1.24 %
Río Negro 16,970 1.07 %
La Rioja 14,644 0.92 %
Catamarca 13,542 0.85 %
Chubut 12,681 0.8 %
San Luis 9,481 0.6 %
Santa Cruz 8,738 0.55 %
La Pampa 4,601 0.29 %
Tierra del Fuego 3,035 0.19 %
Total 1,586,614 100 %

Evolución de los titulares / permanencia en el programa

Distribución geográfica

Tabla 4: Porcentaje de titulares por provincia y año
Sobre el total de titulares
Provincias Titulares 2020 Titulares 2021 Titulares 2022 Porcentaje 2020 Porcentaje 2021 Porcentaje 2022
Ciudad Autónoma de Buenos Aires 36986 63105 64817 4.74% 4.62% 4.4%
Buenos Aires 425489 700762 739912 54.5% 51.36% 50.17%
Catamarca 5594 11652 12788 0.72% 0.85% 0.87%
Córdoba 22680 46439 51562 2.91% 3.4% 3.5%
Corrientes 15386 25595 29437 1.97% 1.88% 2%
Chaco 26440 49599 55307 3.39% 3.64% 3.75%
Chubut 4606 10172 11230 0.59% 0.75% 0.76%
Entre Ríos 12207 26690 30759 1.56% 1.96% 2.09%
Formosa 8986 17460 20447 1.15% 1.28% 1.39%
Jujuy 27986 51057 56480 3.58% 3.74% 3.83%
La Pampa 2079 3804 3975 0.27% 0.28% 0.27%
La Rioja 6470 12518 13814 0.83% 0.92% 0.94%
Mendoza 13150 26178 29658 1.68% 1.92% 2.01%
Misiones 23115 45955 51982 2.96% 3.37% 3.52%
Neuquén 7578 15938 17719 0.97% 1.17% 1.2%
Río Negro 7909 14749 15241 1.01% 1.08% 1.03%
Salta 27414 50718 56588 3.51% 3.72% 3.84%
San Juan 11620 21305 22890 1.49% 1.56% 1.55%
San Luis 4540 7868 8793 0.58% 0.58% 0.6%
Santa Cruz 2618 7917 7835 0.34% 0.58% 0.53%
Santa Fe 20495 46041 54784 2.63% 3.37% 3.71%
Santiago del Estero 18670 34547 39144 2.39% 2.53% 2.65%
Tucumán 47670 72016 76991 6.11% 5.28% 5.22%
Tierra del Fuego, Antártida e Islas del Atlántico Sur 1034 2394 2598 0.13% 0.18% 0.18%
Total 780722 1364479 1474751 100% 100% 100%

Mapa en función del % poblacional

Argentina

Tabla 5: Porcentaje de titulares por año
En base a proyecciones poblacionales de INDEC
Año Titulares Poblacion Porcentaje
2020 780722 45376763 1.7%
2022 1474751 46234830 3.2%

Buenos Aires

Tabla 6: Porcentaje de titulares por año en Buenos Aires
En base a proyecciones poblacionales de INDEC
Año Titulares Poblacion Porcentaje
2020 425489 17541141 2.4%
2022 739912 17875743 4.1%

Montos

Montos por año
Primer período de cada año
Año Primer periodo Primer monto Monto en precios reales
2020 mar. 2020 8500 2781.86
2021 ene. 2021 10293 2563.59
2022 ene. 2022 16000 2644.49
2023 ene. 2023 32714 2719.42
LS0tDQp0aXRsZTogIkVsIOKAnFBvdGVuY2lhciBUcmFiYWpv4oCdIGVuIGRhdG9zLiBNaXJhZGFzIHJlbGFjaW9uYWxlcyBlbnRyZSBjb25jZXBjaW9uZXMgeSBuw7ptZXJvcyBwYXJhIGNvbXByZW5kZXIgc3UgY29uc3RpdHVjacOzbiINCmF1dGhvcjogICJDeW50aGlhIEZlcnJhcmkgTWFuZ28geSBBcmlhbmEgQmFyZGF1aWwiDQpkYXRlOiAiYHIgU3lzLkRhdGUoKWAiDQpsYW5nOiAiZXMiDQpvdXRwdXQ6DQogIHJtZGZvcm1hdHM6OmRvd25jdXRlOg0KICAgIGxpZ2h0Ym94OiBUUlVFDQogICAgaGlnaGxpZ2h0OiB0YW5nbw0KICAgIHRvYzogMw0KICAgIG51bWJlci1zZWN0aW9uczogVFJVRQ0KICAgIGNvZGUtZm9sZGluZzogaGlkZQ0KICAgIGNvZGVfZG93bmxvYWQ6IFRSVUUNCmVkaXRvcl9vcHRpb25zOiANCiAgbWFya2Rvd246IA0KICAgIHdyYXA6IDcyDQotLS0NCg0KYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9DQprbml0cjo6b3B0c19jaHVuayRzZXQod2FybmluZz1GQUxTRSwgbWVzc2FnZT1GQUxTRSwgZWNobyA9IEZBTFNFKQ0KbGlicmFyeSh0aWR5dmVyc2UpDQpsaWJyYXJ5KGphbml0b3IpDQpsaWJyYXJ5KHdhZmZsZSkNCmxpYnJhcnkocGxvdGx5KQ0KbGlicmFyeShzZikNCmxpYnJhcnkoc3RyaW5ncikNCmxpYnJhcnkobHVicmlkYXRlKQ0KbGlicmFyeShnZW9BcikNCmxpYnJhcnkoZ2dyZXBlbCkNCmxpYnJhcnkoZ3QpDQpsaWJyYXJ5KHNjYWxlcykNCmxpYnJhcnkocmVhZHhsKQ0KDQpvcHRpb25zKHNjaXBlbj05OTkpDQpgYGANCg0KIyBSZXN1bHRhZG9zDQoNCiMjIFBlcmZpbCBkZSBsb3MgeSBsYXMgdGl0dWxhcmVzIGRlbCBwcm9ncmFtYQ0KDQojIyMgR8OpbmVybyB5IHNleG8gey50YWJzZXR9DQoNCiMjIyMgVG90YWwgcGFpcw0KYGBge3J9DQoNCiN0aXR1bGFyZXMgc2UgcHVlZGVuIHNhY2FyIGRhdG9zIGRlbCBwZXJmaWwgZGUgbGEgcGVyc29uYSAoc2V4bywgZWRhZCB5IG11bmljaXBpbykNCg0KdGl0dWxhcmVzX3BlcnNvbmFzIDwtIHJlYWRfY3N2KCJkYXRhL3BvdGVuY2lhci10cmFiYWpvLWxpc3RhZG8tdGl0dWxhcmVzLTIwMjItMTAtMDEuY3N2IikNCg0KIyBTZXhvDQpiYXNlX3NleG8gPC0gdGl0dWxhcmVzX3BlcnNvbmFzIHw+DQogICMgSW1wdXRvIHNleG8gYSBnw6luZXJvIGVuIGxvcyBjYXNvcyBlbiBsb3MgcXVlIG5vIGhheSB2YWxvcmVzDQogIG11dGF0ZShnZW5lcm8gPSBpZmVsc2UoaXMubmEoZ2VuZXJvKSwgc2V4bywgZ2VuZXJvKSwNCiAgICAgICAgIGdlbmVybyA9aWZlbHNlKGdlbmVybyA9PSAiRiIsICJNdWplciIsIGlmZWxzZShnZW5lcm8gPT0gIk0iLCAiVmFyw7NuIiwgZ2VuZXJvKSkpDQoNCg0KIyBNdWVzdHJvIGxhIGRpc3RyaWJ1Y2nDs24gZGVsIGfDqW5lcm8NCnRhYmxhX2dlbmVybyA8LSBiYXNlX3NleG8gfD4gDQogIHRhYnlsKGdlbmVybykgfD4gDQogIGFycmFuZ2UoZGVzYyhuKSkgICAlPiUNCiAgYWRvcm5fdG90YWxzIHw+IA0KICBtdXRhdGUocGVyY2VudCA9IHByaW50KHBhc3RlKHJvdW5kKHBlcmNlbnQqMTAwLDIpLCAiJSIpKSkgfD4gDQogIHJlbmFtZSgNCiAgICAiQ2FudGlkYWQiID0gbiwNCiAgICAiUG9yY2VudGFqZSIgPSBwZXJjZW50LA0KICAgICJHw6luZXJvIiA9IGdlbmVybw0KICApIHw+IA0KICBndCgpICU+JQ0KICB0YWJfaGVhZGVyKA0KICAgIHRpdGxlID0gIlRhYmxhIDI6IERpc3RyaWJ1Y2nDs24gZGVsIEfDqW5lcm8gZW4gQXJnZW50aW5hIiwNCiAgICBzdWJ0aXRsZSA9ICJEYXRvcyBkZSBnw6luZXJvIHkgZnJlY3VlbmNpYSINCiAgKSAlPiUNCiAgZm10X251bWJlcigNCiAgICBjb2x1bW5zID0gYyhDYW50aWRhZCksDQogICAgZGVjaW1hbHMgPSAwKSB8PiANCiAgZm10X251bWJlcigNCiAgICBjb2x1bW5zID0gYyhQb3JjZW50YWplKSwNCiAgICBkZWNpbWFscyA9IDIpDQoNCiNtdWVzdHJvDQp0YWJsYV9nZW5lcm8NCg0KIyBHdWFyZG8gdGFibGENCmd0c2F2ZSh0YWJsYV9nZW5lcm8sZmlsZW5hbWUgPSAiZ3JhZmljb3MvZGlzdHJpYnVjaW9uX2dlbmVyby5odG1sIikNCg0KIyBCb3Jybw0Kcm0odGFibGFfZ2VuZXJvKQ0KDQojUG9yY2VudGFqZSBkZSBkaXNjaWRlbmNpYXMNCnByaW50KHBhc3RlKDI4NjcrMTA4Nis3MjErNDM3LCAiY29ycmVzcG9uZGVuIGEgZGlzaWRlbmNpYXMuIEVzIGRlY2lyLCBlbCIsIChyb3VuZCgoKDI4NjcrMTA4Nis3MjErNDM3KS8xNTg2Njc2KSoxMDAsMikpLCIlIikpDQoNCg0KYGBgDQoNCiMjIyMgUHJvdmluY2lhIGRlIGJ1ZW5vcyBhaXJlcyANCg0KRGlzdHJpYnVjacOzbiBkZWwgZ8OpbmVybyBlbiBQQkENCmBgYHtyfQ0KZ2VuZXJvX3BiYSA8LSBiYXNlX3NleG8gfD4NCiAgZmlsdGVyKHByb3ZpbmNpYV9pZCA9PSAiMDYiKSAlPiUgDQogIHRhYnlsKGdlbmVybykgfD4gDQogIGFycmFuZ2UoZGVzYyhuKSkgICAlPiUNCiAgYWRvcm5fdG90YWxzIHw+IA0KICBtdXRhdGUocGVyY2VudCA9IHByaW50KHBhc3RlKHJvdW5kKHBlcmNlbnQqMTAwLDIpLCAiJSIpKSkgfD4gDQogIHJlbmFtZSgNCiAgICAiQ2FudGlkYWQiID0gbiwNCiAgICAiUG9yY2VudGFqZSIgPSBwZXJjZW50LA0KICAgICJHw6luZXJvIiA9IGdlbmVybw0KICApIHw+IA0KICBndCgpICU+JQ0KICB0YWJfaGVhZGVyKA0KICAgIHRpdGxlID0gIlRhYmxhIDM6IERpc3RyaWJ1Y2nDs24gZGVsIEfDqW5lcm8gZW4gQnVlbm9zIEFpcmVzIiwNCiAgICBzdWJ0aXRsZSA9ICJEYXRvcyBkZSBnw6luZXJvIHkgZnJlY3VlbmNpYSINCiAgKSAlPiUNCiAgZm10X251bWJlcigNCiAgICBjb2x1bW5zID0gYyhDYW50aWRhZCksDQogICAgZGVjaW1hbHMgPSAwKSB8PiANCiAgZm10X251bWJlcigNCiAgICBjb2x1bW5zID0gYyhQb3JjZW50YWplKSwNCiAgICBkZWNpbWFscyA9IDIpDQoNCmdlbmVyb19wYmENCiMgR3VhcmRvIHRhYmxhDQpndHNhdmUoZ2VuZXJvX3BiYSwgZmlsZW5hbWUgPSAiZ3JhZmljb3MvZGlzdHJpYnVjaW9uX2dlbmVyb19wYmEuaHRtbCIpDQpgYGANCg0KIyMjIFBpcsOhbWlkZSBkZW1vZ3LDoWZpY2Egey50YWJzZXR9DQoNCiMjIyMgQXJnZW50aW5hDQpgYGB7cn0NCg0KIyBDcmVvIGVsIHJhbmdvIGV0YXJpbyBwYXJhIGhhY2VyIGxhIHBpcmFtaWRlIHBvYmxhY2lvbmFsDQp0aXR1bGFyZXNfcGVyc29uYXMgPC0gdGl0dWxhcmVzX3BlcnNvbmFzIHw+IA0KICBmaWx0ZXIoIWlzLm5hKGVkYWQpKSB8PiANCiAgbXV0YXRlKHJhbmdvX2V0YXJpbyA9IGNhc2Vfd2hlbigNCiAgICAgIGVkYWQgPCAyNSB+ICIxOC0yNCIsDQogICAgICBlZGFkIDwgMzUgfiAiMjUtMzQiLA0KICAgICAgZWRhZCA8IDQ1IH4gIjM1LTQ0IiwNCiAgICAgIGVkYWQgPCA1NSB+ICI0NS01NCIsDQogICAgICBlZGFkIDwgNjUgfiAiNTUtNjQiLA0KICAgICAgZWRhZCA+PSA2NSB+ICI2NS03MiINCiAgICApLA0KICAgIHJhbmdvX2V0YXJpbyA9IGZhY3RvcigNCiAgICAgIHJhbmdvX2V0YXJpbywNCiAgICAgIGxldmVscyA9IGMoIjE4LTI0IiwNCiAgICAgICAgICAgICAgICAgIjI1LTM0IiwNCiAgICAgICAgICAgICAgICAgIjM1LTQ0IiwNCiAgICAgICAgICAgICAgICAgIjQ1LTU0IiwNCiAgICAgICAgICAgICAgICAgIjU1LTY0IiwNCiAgICAgICAgICAgICAgICAgIjY1LTcyIg0KICAgICAgICAgICAgICAgICApDQogICAgKQ0KICApDQoNCiNlc3F1aXNzZTo6ZXNxdWlzc2VyKHgpDQoNCg0KDQoNCiMgQXJtbyBsYSBwaXJhbWlkZQ0KDQpwaXJhbWlkZV9uYWMgPC0gdGl0dWxhcmVzX3BlcnNvbmFzIHw+DQogIGdyb3VwX2J5KHJhbmdvX2V0YXJpbywgc2V4bykgfD4NCiAgc3VtbWFyaXNlKE4gPSBuKCkpIHw+DQogIG11dGF0ZShwcm9wID0gcm91bmQoTi9zdW0oTikqMTAwLDIpLA0KICAgICAgICAgTiA9IGlmZWxzZShzZXhvID09ICJNIiwtTiwgTikpIHw+DQogIHJlbmFtZSgNCiAgICAiUmFuZ28gZXRhcmlvIiA9IHJhbmdvX2V0YXJpbywNCiAgICAic2V4byIgPSBzZXhvLA0KICAgICJDYW50aWRhZCBkZSB0aXR1bGFyZXMiID0gTg0KICApIHw+IA0KICBnZ3Bsb3QoKSArDQogIGFlcyh4ID0gYFJhbmdvIGV0YXJpb2AsIHkgPSBgQ2FudGlkYWQgZGUgdGl0dWxhcmVzYCwgZmlsbCA9IHNleG8pICsNCiAgZ2VvbV9jb2woKSArDQogIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcyA9IGMoRiA9ICIjYjIyOTg3IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNID0gIiMyOTg3YjIiKSkgKw0KIGxhYnMoeCA9ICIgIiwgeSA9ICIgIiwgdGl0bGUgPSAiR3LDoWZpY28gMTogVGl0dWxhcmVzIGRlbCBQb3RlbmNpYXIgVHJhYmFqbyBkZSBBcmdlbnRpbmEgMjAyMC0yMDIyIChlbiBtaWxlcykiLA0KICAgICAgI3N1YnRpdGxlID0gLA0KICAgICAgI2NhcHRpb24gPSAiRnVlbnRlOiBFbGFib3JhY2nDs24gcHJvcGlhIGVuIGJhc2UgYSBkYXRvcyBhYmllcnRvcyBkZWwgTWluaXN0ZXJpbyBkZSBEZXNhcnJvbGxvIFNvY2lhbCBkZSBsYSBOYWNpw7NuIiwgDQogZmlsbCA9ICJTZXhvIikgICsNCiAgY29vcmRfZmxpcCgpICsNCiAgZ2d0aGVtZXM6OnRoZW1lX3BhbmRlcigpKw0KICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAicmlnaHQiLA0KICAgIHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDE2TCwgZmFjZSA9ICJib2xkIiwgaGp1c3QgPSAwLjUpLA0KICAgIHBsb3Quc3VidGl0bGUgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDE0TCwgZmFjZSA9ICJpdGFsaWMiLCBoanVzdCA9IDAuNSksDQogICAgcGxvdC5jYXB0aW9uID0gZWxlbWVudF90ZXh0KHNpemUgPSA4TCksDQogICAgYXhpcy50aXRsZS55ID0gZWxlbWVudF90ZXh0KHNpemUgPSA5TCksDQogICAgYXhpcy50aXRsZS54ID0gZWxlbWVudF90ZXh0KHNpemUgPSA5TCksDQogICAgdGV4dCA9IGVsZW1lbnRfdGV4dChzaXplID04TCwgZmFtaWx5ID0gInNlcmlmIikNCiAgKSArDQogIHNjYWxlX3lfY29udGludW91cyhicmVha3MgPSBjKCAtNTAwMDAsIC0xMDAwMDAsIC0xNTAwMDAsIC0yMDAwMDAsIC0yNTAwMDAsIC0zMDAwMDAsIC0zNTAwMDAsMCwgNTAwMDAsIDEwMDAwMCwgMTUwMDAwLCAyMDAwMDAsIDI1MDAwMCwgMzAwMDAwLCAzNTAwMDApLA0KICAgICAgICAgICAgICAgICAgICAgbGFiZWxzID0gYyg1MCwgMTAwLCAxNTAsIDIwMCwgMjUwLCAzMDAsIDM1MCwwLCA1MCwgMTAwLCAxNTAsIDIwMCwgMjUwLCAzMDAsIDM1MCksDQogICAgICAgICAgICAgICAgICAgICBsaW1pdHMgPSBjKC0zNTAwMDAsMzUwMDAwKQ0KICAgICAgICAgICAgICAgICAgICApIA0KDQpnZ3NhdmUocGxvdCA9IHBpcmFtaWRlX25hYywgImdyYWZpY29zLzFfcGlyYW1pZGUtYXJnZW50aW5hLnBuZyIsIGhlaWdodCA9IDYsd2lkdGggPSA4KQ0KDQpwbG90bHlfbmFjIDwtIGdncGxvdGx5KHBpcmFtaWRlX25hYykNCg0KcGxvdGx5X25hYw0KDQojIGh0bWx3aWRnZXRzOjpzYXZlV2lkZ2V0KHBsb3RseV9uYWMsICJncmFmaWNvcy9odG1sLzFfcGlyYW1pZGUtYXJnZW50aW5hLmh0bWwiLCBzZWxmY29udGFpbmVkID0gVFJVRSkNCnJtKHBpcmFtaWRlX25hYykNCg0KI0d1YXJkbyBodG1sDQoNCmBgYA0KDQojIyMjIFByb3ZpbmNpYSBkZSBidWVub3MgYWlyZXMNCg0KYGBge3J9DQoNCiNQaXJhbWlkZSBkZSBsYSBwcm92aW5jaWEgZGUgYnVlbm9zIGFpcmVzDQp0aXR1bGFyZXNfcGJhIDwtIHRpdHVsYXJlc19wZXJzb25hcyB8Pg0KICBmaWx0ZXIocHJvdmluY2lhX2lkID09ICIwNiIpIHw+IA0KICBncm91cF9ieShyYW5nb19ldGFyaW8sIHNleG8pIHw+DQogIHN1bW1hcmlzZShOID0gbigpKSB8Pg0KICBtdXRhdGUoTiA9IGlmZWxzZShzZXhvID09ICJNIiwtTiwgTikpIHw+DQogIHJlbmFtZSgNCiAgICAiUmFuZ28gZXRhcmlvIiA9IHJhbmdvX2V0YXJpbywNCiAgICAic2V4byIgPSBzZXhvLA0KICAgICJDYW50aWRhZCBkZSB0aXR1bGFyZXMiID0gTg0KICApIA0KDQojIEFybW8gcGlyYW1pZGUgZGUgcHJvdmluY2lhIGRlIGJ1ZW5vcyBhaXJlcw0KcGlyYW1pZGFfcGJhIDwtIHRpdHVsYXJlc19wYmEgfD4gDQogIGdncGxvdCgpICsNCiAgYWVzKHggPSBgUmFuZ28gZXRhcmlvYCwgeSA9IGBDYW50aWRhZCBkZSB0aXR1bGFyZXNgLCBmaWxsID0gc2V4bykgKw0KICBnZW9tX2NvbCgpICsNCiAgc2NhbGVfZmlsbF9tYW51YWwodmFsdWVzID0gYyhGID0gIiNiMjI5ODciLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE0gPSAiIzI5ODdiMiIpKSArDQogbGFicyh4ID0gIiAiLCB5ID0gIiAiLCB0aXRsZSA9ICJHcsOhZmljbyAyOiBUaXR1bGFyZXMgZGVsIFBvdGVuY2lhciBUcmFiYWpvIGRlIGxhIFByb3ZpbmNpYSBkZSBCdWVub3MgQWlyZXMgXG4gZW50cmUgZWwgYcOxbyAyMDIwIHkgMjAyMiAoZW4gbWlsZXMpIiwNCiAgICAgICN1YnRpdGxlID0gIlRpdHVsYXJlcyBkZWwgUG90ZW5jaWFyIFRyYWJham8gZW50cmUgZWwgYcOxbyAyMDIwIHkgMjAyMiAoZW4gbWlsZXMpIiwNCiAgICAgICNjYXB0aW9uID0gIkZ1ZW50ZTogRWxhYm9yYWNpw7NuIHByb3BpYSBlbiBiYXNlIGEgZGF0b3MgYWJpZXJ0b3MgZGVsIE1pbmlzdGVyaW8gZGUgRGVzYXJyb2xsbyBTb2NpYWwgZGUgbGEgTmFjacOzbiIsIA0KIGZpbGwgPSAiU2V4byIpICArDQogIGNvb3JkX2ZsaXAoKSArDQogIGdndGhlbWVzOjp0aGVtZV9wYW5kZXIoKSsNCiAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gInJpZ2h0IiwNCiAgICBwbG90LnRpdGxlID0gZWxlbWVudF90ZXh0KHNpemUgPSAxNkwsIGZhY2UgPSAiYm9sZCIsIGhqdXN0ID0gMC41KSwNCiAgICBwbG90LnN1YnRpdGxlID0gZWxlbWVudF90ZXh0KHNpemUgPSAxNEwsIGZhY2UgPSAiaXRhbGljIiwgaGp1c3QgPSAwLjUpLA0KICAgIHBsb3QuY2FwdGlvbiA9IGVsZW1lbnRfdGV4dChzaXplID0gOEwpLA0KICAgIGF4aXMudGl0bGUueSA9IGVsZW1lbnRfdGV4dChzaXplID0gOUwpLA0KICAgIGF4aXMudGl0bGUueCA9IGVsZW1lbnRfdGV4dChzaXplID0gOUwpLA0KICAgIHRleHQgPSBlbGVtZW50X3RleHQoc2l6ZSA9OEwsIGZhbWlseSA9ICJzZXJpZiIpDQogICkgKw0KICBzY2FsZV95X2NvbnRpbnVvdXMoYnJlYWtzID0gYyggLTUwMDAwLCAtMTAwMDAwLCAtMTUwMDAwLCAtMjAwMDAwLCAwLCA1MDAwMCwgMTAwMDAwLCAxNTAwMDAsIDIwMDAwMCksDQogICAgICAgICAgICAgICAgICAgICBsYWJlbHMgPSBjKDUwLCAxMDAsIDE1MCwgMjAwLCAwLCA1MCwgMTAwLCAxNTAsIDIwMCksDQogICAgICAgICAgICAgICAgICAgICBsaW1pdHMgPSBjKC0yMDAwMDAsMjAwMDAwKQ0KICAgICAgICAgICAgICAgICAgICApIA0KZ2dzYXZlKHBsb3Q9IHBpcmFtaWRhX3BiYSwgImdyYWZpY29zLzJfcGlyYW1pZGUtYmFpcmVzLnBuZyIsIGhlaWdodCA9IDYsd2lkdGggPSA5KQ0KDQojIE11ZXN0cm8NCnBsb3RfcGJhIDwtIGdncGxvdGx5KHBpcmFtaWRhX3BiYSkNCnBsb3RfcGJhDQpybShwaXJhbWlkYV9wYmEscGxvdF9wYmEpDQoNCmBgYA0KDQojIyMgVGl0dWxhcmVzIHBvciBwcm92aW5jaWENCg0KYGBge3J9DQojTW9kaWZpY28gZXJyb3JlcyBkZSBub21icmVzDQp0aXR1bGFyZXNfcGVyc29uYXMgPC0gdGl0dWxhcmVzX3BlcnNvbmFzIHw+DQogIG11dGF0ZShwcm92aW5jaWEgPSBpZmVsc2UocHJvdmluY2lhID09ICJDw4PCs3Jkb2JhIiwgIkPDs3Jkb2JhIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UocHJvdmluY2lhID09ICJFbnRyZSBSw4PCrW9zIiwiRW50cmUgUsOtb3MiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UocHJvdmluY2lhID09ICJUdWN1bcODwqFuIiwgIlR1Y3Vtw6FuIiwgcHJvdmluY2lhKSkpKSANCg0KIyBDcmVvIHRhYmxhDQp0aXR1bGFyZXNfcGVyc29uYXMgfD4gDQogIHRhYnlsKHByb3ZpbmNpYSkgfD4gDQogIGFycmFuZ2UoZGVzYyhuKSkgJT4lDQogIGFkb3JuX3RvdGFscyB8PiANCiAgbXV0YXRlKHBlcmNlbnQgPSBwcmludChwYXN0ZShyb3VuZChwZXJjZW50KjEwMCwyKSwgIiUiKSkpIHw+IA0KICByZW5hbWUoDQogICAgIkNhbnRpZGFkIiA9IG4sDQogICAgIlBvcmNlbnRhamUiID0gcGVyY2VudCwNCiAgICAiUHJvdmluY2lhIiA9IHByb3ZpbmNpYQ0KICApIHw+IA0KICBndCgpICU+JQ0KICB0YWJfaGVhZGVyKA0KICAgIHRpdGxlID0gIkRpc3RyaWJ1Y2nDs24gcG9yIFByb3ZpbmNpYSIsDQogICAgc3VidGl0bGUgPSAiQ2FudGlkYWQgeSBQb3JjZW50YWplIGRlIHRpdHVsYXJlcyAiDQogICkgJT4lDQogIGZtdF9udW1iZXIoDQogICAgY29sdW1ucyA9IGMoQ2FudGlkYWQpLA0KICAgIGRlY2ltYWxzID0gMCkgfD4gDQogIGZtdF9udW1iZXIoDQogICAgY29sdW1ucyA9IGMoUG9yY2VudGFqZSksDQogICAgZGVjaW1hbHMgPSAyKQ0KDQoNCmBgYA0KDQoNCg0KIyMgRXZvbHVjacOzbiBkZSBsb3MgdGl0dWxhcmVzIC8gcGVybWFuZW5jaWEgZW4gZWwgcHJvZ3JhbWENCg0KDQpgYGB7cn0NCiN0aXR1bGFyZXMgcG9yIHBlcmlvZG8geSBqdXJpc2RpY2Npb24gKG11bmljaXBpbykNCnRvdGFsX3RpdHVsYXJlcyA8LSByZWFkX2NzdigiZGF0YS9wb3RlbmNpYXItdHJhYmFqby10aXR1bGFyZXMtYWN0aXZvcy0yMDIyLTEwLTAxLmNzdiIpDQojIFRpdHVsYXJlcyBwb3IgcGVyaW9kbyB5IGp1cmlzZGljY2nDs24gZ3LDoWZpY28gbGluZWFsDQoNCnRpdF9hcmdlbnRpbmEgPC0gdG90YWxfdGl0dWxhcmVzIHw+IA0KICBncm91cF9ieShwZXJpb2RvKSB8PiANCiAgc3VtbWFyaXNlKHRvdGFsX3RpdHVsYXJlcyA9IHN1bSh0aXR1bGFyZXMpLA0KICAgICAgICAgICAganVyaXNkaWNjaW9uID0gIkFyZ2VudGluYSIpIA0KDQpkZl90ZW5kZW5jaWEgPC0gdG90YWxfdGl0dWxhcmVzIHw+IA0KICBmaWx0ZXIocHJvdmluY2lhX2lkID09ICIwNiIpIHw+IA0KICBncm91cF9ieShwZXJpb2RvKSB8PiANCiAgc3VtbWFyaXNlKHRvdGFsX3RpdHVsYXJlcyA9IHN1bSh0aXR1bGFyZXMpLA0KICAgICAgICAgICAganVyaXNkaWNjaW9uID0gIkJ1ZW5vcyBBaXJlcyIpIHw+IA0KICBmdWxsX2pvaW4odGl0X2FyZ2VudGluYSkNCg0KDQpsaW5lYSA8LSBnZ3Bsb3QoZGZfdGVuZGVuY2lhKSArDQogIGFlcyh4ID0gcGVyaW9kbywgeSA9IHRvdGFsX3RpdHVsYXJlcywgY29sb3VyID0ganVyaXNkaWNjaW9uKSArDQogIGdlb21fbGluZSgpICsNCiAgZ2VvbV9wb2ludCgpICsNCiAgc2NhbGVfY29sb3JfYnJld2VyKHBhbGV0dGUgPSAiU2V0MiIsDQogICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb24gPSAxKSArDQogIGxhYnMoDQogICAgeCA9ICIgIiwNCiAgICB5ID0gIiAiLA0KICAgIHRpdGxlID0gIkdyw6FmaWNvIDU6IEV2b2x1Y2nDs24gZGUgbGEgY2FudGlkYWQgZGUgdGl0dWxhcmVzIFxuIGRlbCB0b3RhbCBkZWwgcGHDrXMgeSBkZSBsYSBQcm92aW5jaWEgZGUgQnVlbm9zIEFpcmVzIiwNCiAgICAjY2FwdGlvbiA9ICJGdWVudGU6IEVsYWJvcmFjacOzbiBwcm9waWEgZW4gYmFzZSBhIGRhdG9zIGFiaWVydG9zIGRlbCBNRFNOIiwNCiAgICBjb2xvciA9ICJKdXJpc2RpY2Npw7NuIg0KICApICsNCiAgZ2d0aGVtZXM6OnRoZW1lX3BhbmRlcigpICsNCiAgdGhlbWUoDQogICAgbGVnZW5kLnBvc2l0aW9uID0gInRvcCIsDQogICAgcGxvdC50aXRsZSA9IGVsZW1lbnRfdGV4dChzaXplID0gMTVMLCBmYWNlID0gImJvbGQiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGp1c3QgPSAwLjUpLA0KICAgIHBsb3Quc3VidGl0bGUgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDE0TCwgZmFjZSA9ICJpdGFsaWMiLCBoanVzdCA9IDAuNSksDQogICAgdGV4dCA9IGVsZW1lbnRfdGV4dChmYW1pbHkgPSAic2VyaWYiKQ0KICApICsNCiAgc2NhbGVfeF9kYXRlKGRhdGVfbGFiZWxzID0gIiViLSV5IiwgZGF0ZV9icmVha3MgPSAiMyBtb250aHMiKSArDQogIHNjYWxlX3lfY29udGludW91cyhsYWJlbHMgPSBjb21tYSkNCg0KZ2dzYXZlKHBsb3QgPSBsaW5lYSwgImdyYWZpY29zL2V2b2x1Y2lvbl9jYW50aWRhZF90aXR1bGFyZXMucG5nIikNCg0KZ2dwbG90bHkobGluZWEpDQpgYGANCg0KDQojIyBEaXN0cmlidWNpw7NuIGdlb2dyw6FmaWNhIA0KDQoNCg0KYGBge3J9DQpybShiYXNlX3NleG8sIGRmX3RlbmRlbmNpYSwgdGl0dWxhcmVzX3BiYSkNCg0KIyB1bHRpbW8gY29icm8gZGVsIHRpdHVsYXIgKHNlIHBvZHJpYSBtYXBlYXIpDQp0aXR1bGFyZXNfYW5vIDwtIHJlYWRfY3N2KCJkYXRhL3BvdGVuY2lhci10cmFiYWpvLXRpdHVsYXJlcy0yMDIyLTEwLTAxLmNzdiIpDQoNCg0KIyBBcm1vIGVsIGdyYWZpY28gZGUgdGl0dWxhcmVzIHRvdGFsZXMNCiANCm1hcGFfcHJvdmluY2lhIDwtIHRpdHVsYXJlc19hbm8gfD4NCiAgbXV0YXRlKGFubyA9IHllYXIocGVyaW9kbykpIHw+IA0KICBncm91cF9ieShwcm92aW5jaWFfaWQsIGFubykgfD4gDQogIHN1bW1hcmlzZSh0b3RfdGl0dWxhcmVzPSBzdW0odGl0dWxhcmVzKSkNCg0KI2FncnVwbyBwb3IgYcOxbw0KbWFwYV9wcm92aW5jaWEgPC0gbWFwYV9wcm92aW5jaWEgfD4NCiAgZ3JvdXBfYnkoYW5vKSB8PiANCiAgbXV0YXRlKHRvdF9wcm9wID0gKHRvdF90aXR1bGFyZXMvc3VtKHRvdF90aXR1bGFyZXMpKSoxMDApDQoNCiMgQXJtbyB1bmEgdGFibGEgDQoNCiMgVmVjdG9yZXMgY29uIG5vbWJyZXMgZGUgcHJvdmluY2lhcyB5IGPDs2RpZ29zDQpub21icmVzX3Byb3ZpbmNpYXMgPC0gYygNCiAgIkNpdWRhZCBBdXTDs25vbWEgZGUgQnVlbm9zIEFpcmVzIiwNCiAgIkJ1ZW5vcyBBaXJlcyIsDQogICJDYXRhbWFyY2EiLA0KICAiQ8OzcmRvYmEiLA0KICAiQ29ycmllbnRlcyIsDQogICJDaGFjbyIsDQogICJDaHVidXQiLA0KICAiRW50cmUgUsOtb3MiLA0KICAiRm9ybW9zYSIsDQogICJKdWp1eSIsDQogICJMYSBQYW1wYSIsDQogICJMYSBSaW9qYSIsDQogICJNZW5kb3phIiwNCiAgIk1pc2lvbmVzIiwNCiAgIk5ldXF1w6luIiwNCiAgIlLDrW8gTmVncm8iLA0KICAiU2FsdGEiLA0KICAiU2FuIEp1YW4iLA0KICAiU2FuIEx1aXMiLA0KICAiU2FudGEgQ3J1eiIsDQogICJTYW50YSBGZSIsDQogICJTYW50aWFnbyBkZWwgRXN0ZXJvIiwNCiAgIlR1Y3Vtw6FuIiwNCiAgIlRpZXJyYSBkZWwgRnVlZ28sIEFudMOhcnRpZGEgZSBJc2xhcyBkZWwgQXRsw6FudGljbyBTdXIiDQopDQoNCnByb3ZpbmNpYV9pZCA8LSBjKA0KICAiMDIiLCAiMDYiLCAiMTAiLCAiMTQiLCAiMTgiLCAiMjIiLCAiMjYiLCAiMzAiLCAiMzQiLCAiMzgiLCAiNDIiLCAiNDYiLA0KICAiNTAiLCAiNTQiLCAiNTgiLCAiNjIiLCAiNjYiLCAiNzAiLCAiNzQiLCAiNzgiLCAiODIiLCAiODYiLCAiOTAiLCAiOTQiDQopDQoNCiNVbm8NCnRhYmxhX2NvZCA8LSBkYXRhLmZyYW1lKHByb3ZpbmNpYV9pZCxub21icmVzX3Byb3ZpbmNpYXMpDQoNCm1hcGFfcHJvdmluY2lhIDwtIG1hcGFfcHJvdmluY2lhIHw+IA0KICBsZWZ0X2pvaW4odGFibGFfY29kKQ0KDQp0YWJsYSA8LSBtYXBhX3Byb3ZpbmNpYSB8PiANCiAgc2VsZWN0KC1wcm92aW5jaWFfaWQpIHw+IA0KICBwaXZvdF93aWRlcihuYW1lc19mcm9tID0gYW5vLCB2YWx1ZXNfZnJvbSA9IGModG90X3RpdHVsYXJlcywgdG90X3Byb3ApKSB8PiANCiAgcmVuYW1lKCJQcm92aW5jaWFzIj0gbm9tYnJlc19wcm92aW5jaWFzLA0KICAgICAgICAgIlBvcmNlbnRhamUgMjAyMCIgPSB0b3RfcHJvcF8yMDIwLA0KICAgICAgICAgIlBvcmNlbnRhamUgMjAyMSIgPSB0b3RfcHJvcF8yMDIxLA0KICAgICAgICAgIlBvcmNlbnRhamUgMjAyMiIgPSB0b3RfcHJvcF8yMDIyLA0KICAgICAgICAgIlRpdHVsYXJlcyAyMDIwIiA9IHRvdF90aXR1bGFyZXNfMjAyMCwNCiAgICAgICAgICJUaXR1bGFyZXMgMjAyMSIgPSB0b3RfdGl0dWxhcmVzXzIwMjEsDQogICAgICAgICAiVGl0dWxhcmVzIDIwMjIiID0gdG90X3RpdHVsYXJlc18yMDIyLCkgfD4gDQogIGFkb3JuX3RvdGFscygpIA0KDQp0YWJsYV9wb3JfcHJvdiA8LSB0YWJsYSB8Pg0KICBtdXRhdGUoYFBvcmNlbnRhamUgMjAyMGAgPSBwYXN0ZTAocm91bmQoYFBvcmNlbnRhamUgMjAyMGAsMiksIiUiKSwNCiAgICAgICAgIGBQb3JjZW50YWplIDIwMjFgID0gcGFzdGUwKHJvdW5kKGBQb3JjZW50YWplIDIwMjFgLDIpLCIlIiksDQogICAgICAgICBgUG9yY2VudGFqZSAyMDIyYCA9IHBhc3RlMChyb3VuZChgUG9yY2VudGFqZSAyMDIyYCwyKSwiJSIpKSAlPiUNCiAgI0VsaW1pbm8gbGFzIGNhbnRpZGFkZXMgcG9ycXVlIG5vIHRpZW5lIHNlbnRpZG8NCiAgI3NlbGVjdCgtYFRpdHVsYXJlcyAyMDIwYCwtYFRpdHVsYXJlcyAyMDIxYCwtYFRpdHVsYXJlcyAyMDIyYCkgJT4lIA0KICBndCgpJT4lDQogIHRhYl9oZWFkZXIoDQogICAgdGl0bGUgPSAiVGFibGEgNDogUG9yY2VudGFqZSBkZSB0aXR1bGFyZXMgcG9yIHByb3ZpbmNpYSB5IGHDsW8iLA0KICAgIHN1YnRpdGxlID0gIlNvYnJlIGVsIHRvdGFsIGRlIHRpdHVsYXJlcyINCiAgKSANCg0KdGFibGFfcG9yX3Byb3YNCiNUYWJsYSBwYXJhIHBvbmVyIGVuIGVsIHRyYWJham8gDQoNCndyaXRleGw6OndyaXRlX3hsc3godGFibGEsICJ0YWJsYXMvdGl0dWxhcmVzeHByb3ZpbmNpYXlhbm8ueGxzeCIpDQoNCmd0c2F2ZSh0YWJsYV9wb3JfcHJvdiwgZmlsZW5hbWUgPSAiZ3JhZmljb3MvdGFibGFfcG9yX3Byb3ZfYWJzb2x1dG9zLmh0bWwiKQ0KDQoNCmBgYA0KDQojIyMgTWFwYSBlbiBmdW5jacOzbiBkZWwgJSBwb2JsYWNpb25hbCB7LnRhYnNldH0NCg0KIyMjIyBBcmdlbnRpbmENCmBgYHtyfQ0KIyBUcmFpZ28gZWwgbWFwYSBkZSBhcmdlbnRpbmEgY29uIHByb3ZpbmNpYXMNCm1hcGFfYXJnIDwtIGdldF9nZW8oIkFSR0VOVElOQSIsIGxldmVsID0gInByb3ZpbmNpYSIpIHw+IA0KICByZW5hbWUoInByb3ZpbmNpYV9pZCIgPSBjb2Rwcm92X2NlbnNvKQ0KDQpjb2RpZ29zX21hcGEgPC0gc2hvd19hcmdfY29kZXModmlld2VyID0gRkFMU0UsIG5pdmVsID0gInByb3ZpbmNpYXMiKQ0KYGBgDQoNCg0KDQpgYGB7cn0NCiMgVHJhaWdvIGNzdiBxdWUgYXJtYW1vcyBlbiBsYSBjbGFzZSBkZSBzYWx1ZCBjb24gUg0KcG9ibGFjaW9uX2luZGVjIDwtIHJlYWRfY3N2KCJkYXRhL3Jlc3VsdGFkby5jc3YiKQ0KDQojIE1lIHRyYWlnbyBsb3MgdG90YWxlcyBwb2JsYWNpb25hbGVzDQpwb2JsYWNpb24gPC0gcG9ibGFjaW9uX2luZGVjIHw+IA0KICBmaWx0ZXIoIWp1cmkgPT0gIjAxIikgfD4gDQogICMgQcOxbyAyMDIyIHkgMjAyMCBwYXJhIHZlciBsYXMgZG9zIGZvdG9zDQogIGZpbHRlcihhbm8gPT0gMjAyMiB8IGFubyA9PSAyMDIwKSB8PiANCiAgIyBUb3RhbCBwb3Igc2VvDQogIGZpbHRlcihzZXhvX25vbWJyZSA9PSAiQW1ib3Mgc2V4b3MiKSB8Pg0KICBncm91cF9ieShhbm8sanVyaSwganVyaV9ub21icmUpIHw+IA0KICBzdW1tYXJpc2UocG9ibGFjaW9uID0gc3VtKHBvYmxhY2lvbikpIHw+IA0KICAjUGFyYSBwb2RlciBqb2luZWFyDQogIHJlbmFtZSgicHJvdmluY2lhX2lkIiA9IGp1cmkpDQoNCg0KDQojIEFybWFtb3MgbGEgcHJvcG9yY2nDs24gZGUgdGl0dWxhcmVzIHNvYnJlIGxhIHBvYmxhY2nDs24gcHJveWVjdGFkYQ0KbWFwYV9wcm92aW5jaWFfcG9iIDwtIG1hcGFfcHJvdmluY2lhIHw+DQogIGZpbHRlcihhbm8gJWluJSBjKDIwMjAsIDIwMjIpKSB8PiANCiAgbGVmdF9qb2luKHBvYmxhY2lvbikgfD4gDQogIGdyb3VwX2J5KGFubywgcHJvdmluY2lhX2lkKSB8PiANCiAgbXV0YXRlKHByb3BfcG9ubGFjaW9uYWwgPSAodG90X3RpdHVsYXJlcy9wb2JsYWNpb24pKQ0KDQp2YXJpYWNpb24gPC0gbWFwYV9wcm92aW5jaWFfcG9iIHw+IA0KICBtdXRhdGUocHJvcF9wb25sYWNpb25hbCoxMDApIHw+IA0KICBzZWxlY3QoYW5vLCBwcm9wX3BvbmxhY2lvbmFsLCBub21icmVzX3Byb3ZpbmNpYXMpIHw+IA0KICBwaXZvdF93aWRlcihuYW1lc19mcm9tID0gYW5vLCB2YWx1ZXNfZnJvbSA9IHByb3BfcG9ubGFjaW9uYWwpIHw+IA0KICBtdXRhdGUoY3JlY2ltaWVudG8gPSAoKGAyMDIyYC1gMjAyMGApL2AyMDIwYCkqMTAwKSB8PiANCiAgYXJyYW5nZShkZXNjKGNyZWNpbWllbnRvKSkNCg0KDQoNCm1hcGFfcHJvdmluY2lhX3BvYiRwcm9wX3BvbmxhY2lvbmFsIDwtIHJvdW5kKG1hcGFfcHJvdmluY2lhX3BvYiRwcm9wX3BvbmxhY2lvbmFsKjEwMCwyKQ0KDQojZ3VhcmRvIGV4Y2VsKSoNCndyaXRleGw6OndyaXRlX3hsc3gobWFwYV9wcm92aW5jaWFfcG9iLCAidGFibGFzL3RvdF90aXR1bGFyZXNfcHJvdmluY2lhX2luZGVjLnhsc3giKQ0KDQojVW5vIGNvbiBlbCBtYXBhIA0KbWFwYV9wb2IgPC0gbWFwYV9hcmcgfD4gDQogIGxlZnRfam9pbihtYXBhX3Byb3ZpbmNpYV9wb2IpDQoNCm1hcGFfbmFjIDwtIGdncGxvdChtYXBhX3BvYikgKw0KICBnZW9tX3NmKGFlcyhmaWxsID0gcHJvcF9wb25sYWNpb25hbCkpICsNCiAgZ2VvbV9zZl90ZXh0KA0KICAgIGFlcyhsYWJlbCA9IHBhc3RlMChwcm9wX3BvbmxhY2lvbmFsLCAiJSIpKSwNCiAgICBzaXplID0gMS44LA0KICAgIGZhY2UgPSAiYm9sZCIsDQogICAgY29sb3VyID0gImJsYWNrIiwNCiAgICBoanVzdCA9IDAuNQ0KICApICsNCiAgc2NhbGVfZmlsbF92aXJpZGlzX2Mob3B0aW9uID0gInBsYXNtYSIsDQogICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbiA9IC0xLA0KICAgICAgICAgICAgICAgICAgICAgICBsYWJlbHMgPSBwZXJjZW50X2Zvcm1hdChzY2FsZSA9IDEpKSArDQogIGdndGhlbWVzOjp0aGVtZV9wYW5kZXIoKSArDQogIGxhYnModGl0bGUgPSAiR3JhZmljbyAzOiBQb3JjZW50YWplIGRlIHRpdHVsYXJlcyBwb3IgcHJvdmluY2lhIiwNCiAgICAgICBzdWJ0aXRsZSA9ICJFbiBiYXNlIGEgcHJveWVjY2lvbmVzIGRlIElOREVDIiwNCiAgICAgICBmaWxsID0gIlBvcmNlbnRhamUiKSArDQogIHRoZW1lKA0KICAgIHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDE2TCwgZmFjZSA9ICJib2xkIiwgaGp1c3QgPSAwLjUpLA0KICAgIHBsb3Quc3VidGl0bGUgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDE0TCwgZmFjZSA9ICJpdGFsaWMiLCBoanVzdCA9IDAuNSksDQogICAgdGV4dCA9IGVsZW1lbnRfdGV4dChzaXplID0gMSwgZmFtaWx5ID0gInNlcmlmIikNCiAgKSArDQogIHlsYWIoIiIpICsNCiAgeGxhYigiIikgKw0KICBmYWNldF93cmFwKHZhcnMoYW5vKSkgICAjIEHDsWFkZSBzY2FsZXMgPSAiZnJlZSIgcGFyYSBhanVzdGFyIGxhcyBlc2NhbGFzIGRlIGxvcyBlamVzIGVuIGNhZGEgcGFuZWwNCg0KDQpnZ3NhdmUocGxvdCA9IG1hcGFfbmFjLCAiZ3JhZmljb3MvbWFwYS1wb3JjLXRpdHVsYXJlcy14LXBvYmxhY2lvbi5wbmciKQ0KDQpwYXJhX3RhYmxhIDwtIG1hcGFfcG9iICU+JSANCiAgZ3JvdXBfYnkoYW5vKSB8PiANCiAgc3VtbWFyaXNlKFRpdHVsYXJlcyA9c3VtKHRvdF90aXR1bGFyZXMpLA0KICAgICAgICAgICAgUG9ibGFjaW9uID1zdW0ocG9ibGFjaW9uKSwNCiAgICAgICAgICAgIFBvcmNlbnRhamUgPSBwYXN0ZTAocm91bmQoKFRpdHVsYXJlcy9Qb2JsYWNpb24pKjEwMCwxKSwiJSIpKSAlPiUgDQogIHJlbmFtZSgiQcOxbyIgPSBhbm8pDQoNCnBhcmFfdGFibGEgPC0gYXMuZGF0YS5mcmFtZShwYXJhX3RhYmxhKSAlPiUgDQogIHNlbGVjdCgtZ2VvbWV0cnkpDQoNCnBhcmFfdGFibGEgJT4lIA0KICBndCgpICU+JQ0KICB0YWJfaGVhZGVyKA0KICAgIHRpdGxlID0gIlRhYmxhIDU6IFBvcmNlbnRhamUgZGUgdGl0dWxhcmVzIHBvciBhw7FvIiwNCiAgICBzdWJ0aXRsZSA9ICJFbiBiYXNlIGEgcHJveWVjY2lvbmVzIHBvYmxhY2lvbmFsZXMgZGUgSU5ERUMiDQogICkgDQoNCm1hcGFfbmFjX2ludGVyYWN0aXZvIDwtIGdncGxvdChtYXBhX3BvYikgKw0KICBnZW9tX3NmKGFlcyhmaWxsID0gcHJvcF9wb25sYWNpb25hbCwgdGV4dCA9IHBhc3RlKCJQcm92aW5jaWE6IiwganVyaV9ub21icmUsICI8YnI+UG9yY2VudGFqZToiLCBwcm9wX3BvbmxhY2lvbmFsLCAiJSIpKSkgKw0KICBzY2FsZV9maWxsX3ZpcmlkaXNfYyhvcHRpb24gPSAicGxhc21hIiwNCiAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uID0gLTEsDQogICAgICAgICAgICAgICAgICAgICAgIGxhYmVscyA9IHBlcmNlbnRfZm9ybWF0KHNjYWxlID0gMSkpICsNCiAgZ2d0aGVtZXM6OnRoZW1lX3BhbmRlcigpICsNCiAgbGFicyh0aXRsZSA9ICJHcsOhZmljbyAzOiBQb3JjZW50YWplIGRlIHRpdHVsYXJlcyBwb3IgcHJvdmluY2lhIGVuIGJhc2UgYSBwcm95ZWNjaW9uZXMgZGUgSU5ERUMiLA0KICAgICAgIGZpbGwgPSAiUG9yY2VudGFqZSIpICsNCiAgdGhlbWUoDQogICAgcGxvdC50aXRsZSA9IGVsZW1lbnRfdGV4dChzaXplID0gMTZMLCBmYWNlID0gImJvbGQiLCBoanVzdCA9IDAuNSksDQogICAgcGxvdC5zdWJ0aXRsZSA9IGVsZW1lbnRfdGV4dChzaXplID0gMTRMLCBmYWNlID0gIml0YWxpYyIsIGhqdXN0ID0gMC41KSwNCiAgICB0ZXh0ID0gZWxlbWVudF90ZXh0KHNpemUgPSAxKQ0KICApICsNCiAgeWxhYigiIikgKw0KICB4bGFiKCIiKSArDQogIGZhY2V0X3dyYXAodmFycyhhbm8pKQ0KDQpnZ3Bsb3RseShtYXBhX25hY19pbnRlcmFjdGl2bywgdG9vbHRpcCA9ICJ0ZXh0IikNCmBgYA0KDQoNCiMjIyMgQnVlbm9zIEFpcmVzDQoNCmBgYHtyfQ0KI3BhcmEgdmVyIGN1YWwgZXMgZWwgY29kaWdvDQojY29kaWdvc19tYXBhIDwtIHNob3dfYXJnX2NvZGVzKHZpZXdlciA9IEZBTFNFLCBuaXZlbCA9ICJwcm92aW5jaWFzIikNCiMgVHJhaWdvIGVsIG1hcGEgZGUgYXJnZW50aW5hIGNvbiBwcm92aW5jaWFzDQptYXBhX2JhIDwtIGdldF9nZW8oIkJVRU5PUyBBSVJFUyIsIGxldmVsID0gImRlcGFydGFtZW50byIpIA0KDQojVHJhaWdvIGxhIHByb3llY2Npb24gcG9ibGFjaW9uYWwgZGUgSU5ERUMgcXVlIGhpY2UgcGFyYSBsYSBtYXRlcmlhIGRlIHNhbHVkIGRlIFIgZGUgTUdBSUUNCg0KYmFfZGVwdG9faW5kZWMgPC0gcmVhZF9leGNlbCgiZGF0YS9wcm95ZWNjaW9uZXNfZGVwdG9faW5kZWMueGxzeCIpIHw+IA0KICBjbGVhbl9uYW1lcygpIHw+IA0KICAjIGZpbHRybyBwb3IgcHJvdmluY2lhIGRlIGJ1ZW5vcyBhaXJlcw0KICBmaWx0ZXIoanVyaV9jb2RpZ28gPT0gIjA2IikgfD4gDQogICMgbWUgcXVlZG8gY29uIGxhIGluZm8gZGUgYW1ib3Mgc2V4b3MNCiAgZmlsdGVyKHNleG9fbm9tYnJlID09ICJBbWJvcyBzZXhvcyIpIHw+IA0KICAjRmlsdHJvIGxvcyBhw7Fvcw0KICBmaWx0ZXIoYW5vICVpbiUgYygyMDIwLCAyMDIxLCAyMDIyKSkgfD4gDQogIHJlbmFtZSgicHJvdmluY2lhX2lkIiA9IGp1cmlfY29kaWdvKQ0KDQojIFRpdHVsYXJlcyANCnRpdHVsYXJlc19iYSA8LSB0aXR1bGFyZXNfYW5vIHw+IA0KICAjIEZpbHRybyBsb3MgZGUgYnVlbm9zIGFpcmVzDQogIGZpbHRlcihwcm92aW5jaWFfaWQgPT0gIjA2IikgfD4gDQogICMgQ3JlbyB1bmEgY29sdW1uYSBjb24gZWwgY29kaWdvIHNpbiBlbCAwNiBkZSBsYSBwcm92aW5jaWEgcGFyYSBwb2RlciBtYXRjaGVhciBjb24gZWwgY2Vuc28NCiAgbXV0YXRlKGRlcGFydGFtZW50b19jb2RpZ28gPSBzdWJzdHIoZGVwYXJ0YW1lbnRvX2lkLCAzLCBuY2hhcihkZXBhcnRhbWVudG9faWQpKSwNCiAgICAgICAgIGFubyA9IGFzLmNoYXJhY3Rlcih5ZWFyKHBlcmlvZG8pKSkgDQoNCiMgVW5vIGFtYmFzIGJhc2VzIHBhcmEgcG9kZXIgb3BlcmFyDQptYXBhX3BiYSA8LSBiYV9kZXB0b19pbmRlYyB8PiANCiAgbGVmdF9qb2luKHRpdHVsYXJlc19iYSB8PiANCiAgICAgICAgICAgICAgc2VsZWN0KC1jKG11bmljaXBpbywgbXVuaWNpcGlvX2lkLCANCiAgICAgICAgICAgICAgICAgICAgICAgIGRlcGFydGFtZW50b19pZCwNCiAgICAgICAgICAgICAgICAgICAgICAgIHByb3ZpbmNpYSwNCiAgICAgICAgICAgICAgICAgICAgICAgIGRlcGFydGFtZW50bykpKSB8PiANCiAgbXV0YXRlKHBvcmNlbnRhamUgPSAodGl0dWxhcmVzL3BvYmxhY2lvbikqMTAwKSANCg0KYmFzZV9maW5hbF9wYmEgPC0gbWFwYV9iYSB8PiANCiAgbGVmdF9qb2luKG1hcGFfcGJhIHw+IA0KICBzZWxlY3QoZGVwYXJ0YW1lbnRvX25vbWJyZSxkZXBhcnRhbWVudG9fY29kaWdvLCBhbm8sIHBvcmNlbnRhamUpIHw+IA0KICAgIHJlbmFtZSgiY29kZGVwdG9fY2Vuc28iID0gZGVwYXJ0YW1lbnRvX2NvZGlnbykgfD4gDQogICAgZmlsdGVyKCEgYW5vID09ICIyMDIxIikpDQoNCg0KdGFibGFfcGJhIDwtIG1hcGFfcGJhIHw+IA0KICBzZWxlY3QoZGVwYXJ0YW1lbnRvX25vbWJyZSwgYW5vLCBwb2JsYWNpb24sIHRpdHVsYXJlcywgcG9yY2VudGFqZSkgfD4gDQogIHBpdm90X3dpZGVyKG5hbWVzX2Zyb20gPSBhbm8sIHZhbHVlc19mcm9tID0gYyhwb2JsYWNpb24sIHRpdHVsYXJlcywgcG9yY2VudGFqZSkpIA0KDQojRFQ6OmRhdGF0YWJsZSh0YWJsYV9wYmEpDQoNCndyaXRleGw6OndyaXRlX3hsc3godGFibGFfcGJhLCAidGFibGFzL3RhYmxhX3BiYS54bHN4IikNCmBgYA0KDQoNCmBgYHtyfQ0KDQptYXBhX2J1ZW5vc19haXJlcyA8LSBiYXNlX2ZpbmFsX3BiYSB8PiANCiAgZ2dwbG90KCkgKw0KICBnZW9tX3NmKGFlcyhmaWxsID0gcG9yY2VudGFqZSwgdGV4dCA9IHBhc3RlKCJEZXBhcnRhbWVudG86IiwgZGVwYXJ0YW1lbnRvX25vbWJyZSwgIjxicj5Qb3JjZW50YWplOiIsIHJvdW5kKHBvcmNlbnRhamUsMSksICIlIikpKSArDQogIHNjYWxlX2ZpbGxfdmlyaWRpc19jKG9wdGlvbiA9ICJwbGFzbWEiLA0KICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb24gPSAtMSwNCiAgICAgICAgICAgICAgICAgICAgICAgbGFiZWxzID0gcGVyY2VudF9mb3JtYXQoc2NhbGUgPSAxKSkgKw0KICBnZ3RoZW1lczo6dGhlbWVfcGFuZGVyKCkgKw0KICBsYWJzKHRpdGxlID0gIkdyw6FmaWNvIDQ6IFBvcmNlbnRhamUgZGUgdGl0dWxhcmVzIHBvciBkZXBhcnRhbWVudG8iLA0KICAgICAgIHN1YnRpdGxlID0gIkVuIGJhc2UgYSBwcm95ZWNjaW9uZXMgZGUgSU5ERUMiLA0KICAgICAgIGZpbGwgPSAiUG9yY2VudGFqZSIpICsNCiAgdGhlbWUoDQogICAgcGxvdC50aXRsZSA9IGVsZW1lbnRfdGV4dChzaXplID0gMTZMLCBmYWNlID0gImJvbGQiLCBoanVzdCA9IDAuNSksDQogICAgcGxvdC5zdWJ0aXRsZSA9IGVsZW1lbnRfdGV4dChzaXplID0gMTRMLCBmYWNlID0gIml0YWxpYyIsIGhqdXN0ID0gMC41KSwNCiAgICB0ZXh0ID0gZWxlbWVudF90ZXh0KHNpemUgPSAxLCBmYW1pbHkgPSAic2VyaWYiKQ0KICApICsNCiAgeWxhYigiIikgKw0KICB4bGFiKCIiKSArDQogIGZhY2V0X3dyYXAodmFycyhhbm8pKSAgICMgQcOxYWRlIHNjYWxlcyA9ICJmcmVlIiBwYXJhIGFqdXN0YXIgbGFzIGVzY2FsYXMgZGUgbG9zIGVqZXMgZW4gY2FkYSBwYW5lbA0KDQojbWFwYV9idWVub3NfYWlyZXMNCg0KZ2dzYXZlKHBsb3QgPSBtYXBhX2J1ZW5vc19haXJlcywgImdyYWZpY29zL21hcGFfcG9yY190aXR1bGFyZXNfcG9ibGFjaW9uX2J1ZW5vc19haXJlcy5wbmciKQ0KDQojIExvcyBkYXRvcyB0b3RhbGVzIGRlIGxhIHByb3ZpbmNpYQ0KDQptYXBhX3BiYSAgJT4lDQogIGZpbHRlcighYW5vICA9PSAgMjAyMSkgJT4lIA0KICBncm91cF9ieShhbm8pIHw+IA0KICBzdW1tYXJpc2UoVGl0dWxhcmVzID1zdW0odGl0dWxhcmVzKSwNCiAgICAgICAgICAgIFBvYmxhY2lvbiA9c3VtKHBvYmxhY2lvbiksDQogICAgICAgICAgICBQb3JjZW50YWplID0gcGFzdGUwKHJvdW5kKChUaXR1bGFyZXMvUG9ibGFjaW9uKSoxMDAsMSksIiUiKSkgJT4lIA0KICByZW5hbWUoIkHDsW8iID0gYW5vKSAlPiUgDQogIGd0KCkgJT4lDQogIHRhYl9oZWFkZXIoDQogICAgdGl0bGUgPSAiVGFibGEgNjogUG9yY2VudGFqZSBkZSB0aXR1bGFyZXMgcG9yIGHDsW8gZW4gQnVlbm9zIEFpcmVzIiwNCiAgICBzdWJ0aXRsZSA9ICJFbiBiYXNlIGEgcHJveWVjY2lvbmVzIHBvYmxhY2lvbmFsZXMgZGUgSU5ERUMiDQogICkgDQoNCmdncGxvdGx5KG1hcGFfYnVlbm9zX2FpcmVzLCB0b29sdGlwID0gInRleHQiKQ0KYGBgDQoNCiMjIE1vbnRvcyANCg0KYGBge3J9DQojIEZpbHRybyBlbCBtb250byBwb3IgcG90ZW5jaWFyIHRyYWJham8NCm1vbnRvc192aWdlbnRlcyA8LSByZWFkX2NzdigiZGF0YS9tb250b3MtdHJhbnNmZXJlbmNpYXMtMjAyMy0wMS0wMS5jc3YiKSB8PiANCiAgZmlsdGVyKHByb2dyYW1hID09ICJQb3RlbmNpYXIgVHJhYmFqbyIpIHw+IA0KICBtdXRhdGUocGVyaW9kbyA9IGZvcm1hdC5EYXRlKHBlcmlvZG8sICIlbS8lWSIpKQ0KDQoNCiMgVHJhaWdvIGVsIElQQyBkZSBJTkRFQyBwYXJhIHBhc2FyIGxzIG1vbnRvcyBhIHByZWNpb3MgcmVhbGVzDQoNCmlwYyA8LSByZWFkX2V4Y2VsKCJkYXRhL3NoX2lwY18wOV8yMy54bHMiLCANCiAgICBzaGVldCA9ICJhbmFsaXNpc19wb3RlbmNpYXIiKSB8Pg0KICBjbGVhbl9uYW1lcygpIHw+IA0KICBtdXRhdGUocGVyaW9kbyA9IGZvcm1hdC5EYXRlKGZlY2hhLCAiJW0vJVkiKSkgfD4gDQogIHNlbGVjdCgtZmVjaGEpIHw+IA0KICByZW5hbWUoImlwYyIgPSBuaXZlbF9nZW5lcmFsKSB8PiANCiAgcmlnaHRfam9pbihtb250b3NfdmlnZW50ZXMpIHw+DQogIG11dGF0ZShpcGM9IGlwYy8xMDAsDQogICAgICAgICBtb250b19yZWFsID0gbW9udG8vaXBjLA0KICAgICAgICAgcGVyaW9kbyA9IGFzLkRhdGUocGFzdGUoIjAxLyIsIHBlcmlvZG8sIHNlcCA9ICIiKSwgZm9ybWF0ID0gIiVkLyVtLyVZIikpDQoNCg0KDQpgYGANCg0KYGBge3J9DQoNCiMgQXJtbyBncmFmaWNvIGRlbCBJUEMNCg0KbGluZWFfaXBjIDwtIGdncGxvdChpcGMpICsNCiAgYWVzKHggPSBwZXJpb2RvLCB5ID0gbW9udG9fcmVhbCkgKw0KICBnZW9tX2xpbmUoKSArDQogIGdlb21fcG9pbnQoKSArDQogIGxhYnMoDQogICAgeCA9ICIgIiwNCiAgICB5ID0gIiAiLA0KICAgIHRpdGxlID0gIkdyw6FmaWNvIDY6IEV2b2x1Y2nDs24gZGUgbG9zIG1vbnRvcyBkZWwgcHJvZ3JhbWEiLA0KICAgICNjYXB0aW9uID0gIkZ1ZW50ZTogRWxhYm9yYWNpw7NuIHByb3BpYSBlbiBiYXNlIGFsIElQQyBkZSBJTkRFQyIsDQogICkgKw0KICBnZ3RoZW1lczo6dGhlbWVfcGFuZGVyKCkgKw0KICB0aGVtZSgNCiAgICBsZWdlbmQucG9zaXRpb24gPSAidG9wIiwNCiAgICBwbG90LnRpdGxlID0gZWxlbWVudF90ZXh0KHNpemUgPSAxNUwsIGZhY2UgPSAiYm9sZCIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoanVzdCA9IDAuNSksDQogICAgcGxvdC5zdWJ0aXRsZSA9IGVsZW1lbnRfdGV4dChzaXplID0gMTRMLCBmYWNlID0gIml0YWxpYyIsIGhqdXN0ID0gMC41KSwNCiAgICB0ZXh0ID0gZWxlbWVudF90ZXh0KGZhbWlseSA9ICJzZXJpZiIpDQogICkgKw0KICBzY2FsZV94X2RhdGUoZGF0ZV9sYWJlbHMgPSAiJW0tJXkiLCBkYXRlX2JyZWFrcyA9ICIzIG1vbnRocyIpICsNCiAgc2NhbGVfeV9jb250aW51b3VzKGxhYmVscyA9IGNvbW1hLCBsaW1pdHMgPSBjKDE1MDAsNDAwMCkpDQoNCg0KZ2dzYXZlKHBsb3QgPSBsaW5lYV9pcGMsICJncmFmaWNvcy9saW5lYV9pcGMucG5nIikNCg0KZ2dwbG90bHkobGluZWFfaXBjKQ0KYGBgDQoNCg0KDQpgYGB7cn0NCg0KaXBjICAlPiUgIyBDb252aWVydGUgJ3BlcmlvZG8nIGEgZm9ybWF0byBkZSBmZWNoYQ0KICBncm91cF9ieSgiQcOxbyIgPSBsdWJyaWRhdGU6OnllYXIocGVyaW9kbykpICU+JQ0KICBzdW1tYXJpc2UoDQogICAgIlByaW1lciBwZXJpb2RvIiA9IGZpcnN0KGZvcm1hdC5EYXRlKHBlcmlvZG8sIiViICVZIikpLA0KICAgICN1bHRpbW9fcGVyaW9kbyA9IG1heChwZXJpb2RvKSwNCiAgICAiUHJpbWVyIG1vbnRvIiA9IHBhc3RlMCgiIixmaXJzdChtb250bykpLA0KICAgICN1bHRpbW9fbW9udG8gPSBsYXN0KG1vbnRvKSwNCiAgICAiTW9udG8gZW4gcHJlY2lvcyByZWFsZXMiID0gcGFzdGUwKCIiLHJvdW5kKGZpcnN0KG1vbnRvX3JlYWwpLDIpKSwNCiAgICAjdWx0aW1vX21vbnRvX3JlYWwgPSBsYXN0KG1vbnRvX3JlYWwpDQogICkgJT4lIA0KICBndCgpICU+JQ0KICB0YWJfaGVhZGVyKA0KICAgIHRpdGxlID0gIk1vbnRvcyBwb3IgYcOxbyIsDQogICAgc3VidGl0bGUgPSAiUHJpbWVyIHBlcsOtb2RvIGRlIGNhZGEgYcOxbyINCiAgKSANCmBgYA0KDQo=